package ca.qc.bdeb.info.pp2.tp2.application;

import java.util.ArrayList;
import java.util.List;

public class Facade
{
    public List<PaysBean> getPays()
    {
        List<PaysBean> paysBean = new ArrayList<PaysBean>();
        List<Pays> pays = PaysDAO.listerPays();

        for (int i = 0; i < pays.size(); i++)
            paysBean.add(pays.get(i).getPaysBean());

        return paysBean;
    }

    public List<ProvinceBean> getProvince(int idPays)
    {
        List<ProvinceBean> provinceBean = new ArrayList<ProvinceBean>();
        List<Province> province = ProvinceDAO.listerProvince(idPays);

        for (int i = 0; i < province.size(); i++)
            provinceBean.add(province.get(i).getProvinceBean());

        return provinceBean;
    }

    public List<VilleBean> getVille(int idProvince)
    {
        List<VilleBean> villeBean = new ArrayList<VilleBean>();
        List<Ville> ville = VilleDAO.listerVille(idProvince);

        for (int i = 0; i < ville.size(); i++)
            villeBean.add(ville.get(i).getVilleBean());

        return villeBean;
    }

    public String getNomVille(int idVille)
    {
        String nomVille = null;
        Ville v = VilleDAO.getVille(idVille);

        if (v != null)
            nomVille = v.getVille();

        return nomVille;
    }

    public List<QuartierBean> getQuartier(String[] idsVilles)
    {
        List<QuartierBean> quartierBean = new ArrayList<QuartierBean>();
        List<Quartier> quartier = QuartierDAO.listerQuartier(idsVilles);

        for (int i = 0; i < quartier.size(); i++)
            quartierBean.add(quartier.get(i).getQuartierBean());

        return quartierBean;
    }

    public String[] getQuartiersChoisis(String[] idsQuartiers)
    {
        String[] nomQuartiers = null;
        List<Quartier> quartier = QuartierDAO.getQuartiersChoisis(idsQuartiers);

        if (!(quartier.isEmpty())) {
            nomQuartiers = new String[quartier.size()];

            for (int i = 0; i < quartier.size(); i++)
                nomQuartiers[i] = quartier.get(i).getQuartier() + ", "
                        + this.getNomVille(quartier.get(i).getIdVille());
        }
        return nomQuartiers;
    }

    public List<ProprieteBean> getCollectionProprietes(CriteresRechercheBean cr)
    {
        List<ProprieteBean> proprieteBean = new ArrayList<ProprieteBean>();
        List<Propriete> propriete = ProprieteDAO.listerPropriete(cr);

        for (int i = 0; i < propriete.size(); i++)
            proprieteBean.add(propriete.get(i).getProprieteBean());

        return proprieteBean;
    }

    public ProprieteBean getPropriete(int idHabitation)
    {
        ProprieteBean proprieteBean = null;
        Propriete propriete = ProprieteDAO.getPropriete(idHabitation);

        if (propriete != null)
            proprieteBean = propriete.getProprieteBean();

        return proprieteBean;
    }

    public ImageProprieteBean getImageProprietePrincipale(int idHabitation)
    {
        ImageProprieteBean imageProprieteBean = null;
        ImageProprietePrincipale imagePropriete = ImageProprieteDAO.getImageProprietePrincipale(idHabitation);

        if (imagePropriete != null)
            imageProprieteBean = imagePropriete.getImageProprieteBean();

        return imageProprieteBean;
    }

    public List<ImageProprieteBean> getCollectionImageProprieteSecondaire(int idHabitation)
    {
        List<ImageProprieteBean> imageProprieteBean = new ArrayList<ImageProprieteBean>();
        List<ImageProprieteSecondaire> imagePropriete = ImageProprieteDAO.listerImageProprieteSecondaire(idHabitation);

        for (int i = 0; i < imagePropriete.size(); i++)
            imageProprieteBean.add(imagePropriete.get(i).getImageProprieteBean());

        return imageProprieteBean;
    }

    public ImageProprieteBean getImageProprieteSecondaire(int idImage)
    {
        ImageProprieteBean imageProprieteBean = null;
        ImageProprieteSecondaire imagePropriete = ImageProprieteDAO.getImageProprieteSecondaire(idImage);

        if (imagePropriete != null)
            imageProprieteBean = imagePropriete.getImageProprieteBean();

        return imageProprieteBean;
    }

    public void setVendrePropriete(VendreProprieteBean pbean)
    {
        VendreProprieteDAO pdao = new VendreProprieteDAO();
        VendrePropriete p = new VendrePropriete();
        p.setVendreProprieteBean(pbean);
        pdao.ecrireVendrePropriete(p);
    }

    public List<TypeMaisonBean> getTypeMaison()
    {
        List<TypeMaisonBean> typeMaisonBean = new ArrayList<TypeMaisonBean>();
        List<TypeMaison> typeMaison = TypeMaisonDAO.listerTypeMaison();

        for (int i = 0; i < typeMaison.size(); i++)
            typeMaisonBean.add(typeMaison.get(i).getTypeMaisonBean());

        return typeMaisonBean;
    }

    public String getNomTypeMaison(int idTypeMaison)
    {
        return TypeMaisonDAO.getTypeMaison(idTypeMaison);
    }

    public List<AgentBean> getAgent()
    {
        List<AgentBean> abean = new ArrayList<AgentBean>();
        List<Agent> a = AgentDAO.listerAgent();

        for (int i = 0; i < a.size(); i++)
            abean.add(a.get(i).getAgentBean());

        return abean;
    }

    public List<AgentBean> getAgent(String prenom, String nom, String codePostal)
    {
        List<AgentBean> abean = new ArrayList<AgentBean>();
        List<Agent> a = AgentDAO.listerAgent(prenom, nom, codePostal);

        for (int i = 0; i < a.size(); i++)
            abean.add(a.get(i).getAgentBean());

        return abean;
    }

    public ImageAgentBean getImageAgent(int idAgent)
    {
        ImageAgentBean imageAgentBean = null;
        ImageAgent imageAgent = ImageAgentDAO.getImageAgent(idAgent);

        if (imageAgent != null)
            imageAgentBean = imageAgent.getImageAgentBean();

        return imageAgentBean;
    }

    public void setContacterAgent(ContacterAgentBean cabean)
    {
        ContacterAgentDAO cadao = new ContacterAgentDAO();
        ContacterAgent ca = new ContacterAgent();
        ca.setContacterAgentBean(cabean);
        cadao.ecrireContacterAgent(ca);
    }

    public List<PieceBean> getPiece(int idHabitation)
    {
        List<PieceBean> pbean = new ArrayList<PieceBean>();
        List<Piece> p = PieceDao.listerPiece(idHabitation);

        for (int i = 0; i < p.size(); i++)
            pbean.add(p.get(i).getPieceBean());

        return pbean;
    }
}
